Information processing systems made up of a number of network-connected computing devices have been used to provide a user-specific data processing environment to multiple users through a variety of service models. For example, a service provider deploys physical machines in their data center and leases them out to multiple users (also called “tenants”). This service model is sometimes called the “physical Infrastructure as a Service” (physical IaaS). In another service model, a number of virtual machines are configured on physical machines for the purpose of leasing to multiple users.
There has been a need for the capability of reconfiguring a computer from another computer via a network. For example, one proposed computer system employs a management unit to store configuration data for the Basic Input/Output System (BIOS). The configuration data in this management unit is accessible for editing by an external computer system even when the noted computer system is powered off.
Another proposed technique permits a server computer to modify BIOS setup data stored in non-volatile storage devices of a remote personal computer through a local area network (LAN) connection.
Yet another proposed technique is directed to a method of rebooting a multiprocessor data processing system as part of its firmware update procedure. The method performs deallocation of resources, rebooting, and reallocation of resources for each of the multiple processor in an orderly fashion, thereby minimizing the system downtime.
See, for example, the following documents:                Japanese Laid-open Patent Publication No. 2013-156993        Japanese Laid-open Patent Publication No. 2001-325171        Japanese Laid-open Patent Publication No. 2008-59585        
As mentioned above, computer systems are expected to provide a capability of flexibly modifying the configuration of physical machines and virtual machines. Think of, for example, a service that leases machines out to users. It would be beneficial for those users if their machine configuration is flexible enough to provide user-specific system environments. However, reconfiguration of one machine or two could lead to a violation of constraints on the system's operation (e.g., a limit of power consumption, requirements for performance and security). When such constraint violation becomes a reality, the behavior of the reconfigured machine may affect operation of other machines in an undesired way.
It is noted here that certain kinds of machine reconfiguration need rebooting of the machine in order to effect its new setup. For example, modification of hardware-related configuration (e.g., BIOS setup and firmware setup) is among the noted kinds of machine reconfiguration. The users are allowed to edit the setup of their respective machines at any time they wish. However, even if the new configuration satisfies system constraints at the time of editing, it does not necessarily mean that the same is true for the next boot of the machine in question.